package com.example.match.once;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.PageReadListener;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.alibaba.excel.util.ListUtils;

import java.io.File;
import java.util.List;

/**
 * @author 雨后天晴
 * @version 1.0
 * @since 2024/9/17 01:22
 */
public class ImportExcel {

    public static void main(String[] args) {
        // 写法1：JDK8+ ,不用额外写一个DemoDataListener
        // since: 3.0.0-beta1
        String fileName = "D:\\Code\\JavaCode\\sunny-backend\\src\\main\\resources\\testExcel.xlsx";
        // 这里默认每次会读取100条数据 然后返回过来 直接调用使用数据就行
        // 具体需要返回多少行可以在`PageReadListener`的构造函数设置
        // readListener(fileName);
        syncRead(fileName);
    }

    /**
     * 监听器读取
     * @param fileName 文件名
     */
    public static void readListener(String fileName) {
        EasyExcel.read(fileName, PlanetTableUserInfo.class, new TableListener()).sheet().doRead();
    }

    /**
     * 同步读
     */
    public static void syncRead(String fileName) {
        // 这里 需要指定读用哪个class去读，然后读取第一个sheet 文件流取会自动finish
        List<PlanetTableUserInfo> totalDataList = EasyExcel.read(fileName).head(PlanetTableUserInfo.class).sheet().doReadSync();
        for (PlanetTableUserInfo planetTableUserInfo : totalDataList) {
            System.out.println(planetTableUserInfo);
        }
    }
}
